Systems and methods for robotic garbage container delivery

ABSTRACT

A robotic garbage unit can include a garbage container, a robotic drive system, and sensors. The robotic garbage unit can determine a travel path and drive along the travel path to get to a garbage pickup location. The robotic garbage unit can detect a garbage pickup event based on garbage sensors. When a garbage pickup event is detected, the robotic garbage unit determines a travel path to a docking station and drives to the docking station. The robotic garbage unit can avoid obstructions while traveling by adjusting a travel path.

BACKGROUND

Garbage is collected in receptacles inside of homes. The garbage can beplaced into a bag, and when the bag is full, the bag can be placed intoa garbage container. On a scheduled frequency, people walk garbagecontainers to the street and leave the garbage containers at the streetfor pickup. The garbage containers are often left at night for pickupthe next day. A garbage service schedules employees to pick up garbagecontainers on a scheduled route with a garbage truck. The employeesempty the contents of the garbage containers into the garbage truck andleave the empty garbage container on the side of the road. Once empty,people pull the empty garbage containers back into their home or garageuntil the next scheduled delivery.

Garbage containers can be sold at stores, such as, for example, WALMART®or TARGET®. Garbage containers can have wheels on one side that allow auser to tip the garbage container to rest on the wheels for easytransport. The garbage containers can have lids to prevent debris oranimals from getting into the garbage. The garbage containers can bemade of a hard plastic and with metal parts to hold the wheels and tocreate the hinge for a lid.

BRIEF DESCRIPTION OF THE DRAWINGS

Many aspects of the present disclosure can be better understood withreference to the following drawings. The components in the drawings arenot necessarily to scale, with emphasis instead being placed uponclearly illustrating the principles of the disclosure. Moreover, in thedrawings, like reference numerals designate corresponding partsthroughout the several views.

FIG. 1 is a drawing of a garbage removal environment according tovarious embodiments of the present disclosure.

FIGS. 2A and 2B are illustrations of the garbage removal environmentuser interface of FIG. 1 according to various embodiments of the presentdisclosure.

FIGS. 3A-3C are illustrations of robotic garbage units according tovarious embodiments of the present disclosure.

FIG. 4 is an illustration of a robotic garbage unit according to variousembodiments of the present disclosure.

FIG. 5 is an illustration of a robotic garbage unit and docking stationaccording to various embodiments of the present disclosure.

FIG. 6 is a flowchart of certain functionality implemented by portionsof the garbage removal environment of FIG. 1 according to variousembodiments of the present disclosure.

FIG. 7 is a schematic block diagram that provides one exampleillustration of a computing device employed in the garbage removalenvironment of FIG. 1 according to various embodiments of the presentdisclosure.

DETAILED DESCRIPTION

These and other aspects, objects, features, and embodiments will becomeapparent to a person of ordinary skill in the art upon consideration ofthe following detailed description of illustrative embodimentsexemplifying the best mode as presently perceived.

A robotic system, referred to herein as a robotic garbage unit, candrive a garbage container from the side of a home or inside a garage toa curbside location for pickup by a garbage truck on a scheduledfrequency. The robotic system can detect that garbage was removed fromthe garbage container and return the garbage container to the home forstorage. The robotic system can engage a docking station to receivepower when the robotic system is not in use. When an obstruction isencountered, the robotic system can change a travel path to avoid theobstruction when possible.

The robotic system can include proximity sensors, positioning sensors,garbage sensors, and other sensors. To monitor and control the roboticsystem, a computing device can be included on the robotic system. Thecomputing device can be communicably coupled to the sensors and drivesystem. The computing device can run applications to perform variousfunctionalities. As an example, an application can generate a travelpath from a docking station to a garbage pickup location, and viceversa. The application can detect obstructions and monitor theobstructions while adjusting the travel path to avoid the obstructions.

In the following paragraphs, the embodiments are described in furtherdetail by way of example with reference to the attached drawings. In thedescription, well known components, methods, and/or processingtechniques are omitted or briefly described so as not to obscure theembodiments. As used herein, the “present invention” refers to any oneof the embodiments of the invention described herein and anyequivalents. Furthermore, reference to various feature(s) of the“present invention” does not suggest that all embodiments must includethe referenced feature(s).

Turning now to the drawings, exemplary embodiments are described indetail. With reference to FIG. 1, shown is a garbage removal environment100 according to various embodiments. The garbage removal environment100 includes a computing environment 103, a building structure 106, adocking station 109, a robotic garbage unit 112, a pickup garbagelocation 115, and a client device 118, which can be in datacommunication with each other via a network 121. The computingenvironment 103 includes a data store 127 and a management application130. The data store 127 can store pickup data 133, robot data 136, andvarious other data. The docking station 109 can include a connector 142to be used when docking a robotic garbage unit 112.

The components executed on the computing environment 103, roboticgarbage unit 112, and/or client device 118, for example, can include amanagement application 130, a garbage application 169, a clientapplication 172, and other applications, services, processes, systems,engines, or functionality not discussed in detail herein.

The robotic garbage unit 112 can include various components, such as,for example, a garbage container 148, a garbage sensor 151, a drivesystem 154, a proximity sensor 157, a connector 160, other sensors 168,an attaching mechanism 166, and a garbage application 169, among othercomponents. A client device 118 can include a client application 172 toview, edit, and control features and functionality of the roboticgarbage unit 112 by sending and receiving messages with the managementapplication 130 through the network 121.

The robotic garbage unit 112 can transport garbage in the garbagecontainer 148 from the docking station 109 to the garbage pickuplocation 115 in time for a scheduled pickup. For example, the roboticgarbage unit 112 can disengage from the docking station 109 the nightbefore a scheduled pickup and navigate from the docking station 109 tothe garbage pickup location 115.

The garbage pickup location 115 can be identified during setup as aspecific GPS location or relative location from the docking station 109.In some embodiments, the garbage pickup location 115 is identified by anelectronic beacon device. The beacon device can be temporarily placed atthe location during install or permanently installed at the garbagepickup location 115. The garbage pickup location 115 can also be definedby geographic features. For example, the garbage pickup location 115 canbe defined as the side of the end of a driveway, such as, for example,three feet to the left of the driveway against a curb.

Once at the garbage pickup location 115, the robotic garbage unit 112can wait until a garbage pickup event occurs when garbage is removedfrom the garbage container 148, which can be determined based on thegarbage sensor 151. After the garbage pickup event occurs, the roboticgarbage unit 112 can navigate back to the docking station 109 and engagethe connector 160 with the connector 142 to begin charging until anotherscheduled pickup event.

The garbage container 148 can be a container with an opening on top. Thegarbage container 148 can include a bottom and four sides. The openingon top can be covered by a lid, which can be permanently attached to thegarbage container 148 or removable. The garbage container 148 can have aspecific volume for which to store garbage. In some embodiments, thegarbage container 148 can be store 20 gallons of garbage, while in otherembodiments, the garbage container 148 can store 70 gallons of garbage.In yet other embodiments, the volume of garbage can be another amount,such as, for example, 50 gallons of garbage. The garbage container 148can be permanently affixed to the robotic garbage unit. Alternatively,the garbage container 148 can be attached by an attaching mechanism 166,which is discussed further below.

The garbage container 148 can include a garbage sensor 151 to detectwhether or not garbage is stored in the garbage container 148. In someembodiments, the garbage sensor 151 detects whether the garbagecontainer 148 contains more than a threshold quantity of garbage or not.As an example, the garbage sensor 151 can detect whether the garbagecontainer 148 is 50% full or greater.

In another embodiment, the garbage sensor 151 can measure a substantivevalue corresponding to an amount of garbage in the garbage container151. The substantive valve can correspond to a quantitative measurementof an amount of garbage in the garbage container. As an example, thegarbage sensor 151 can measure the distance from the lid to the start ofthe garbage in the garbage container 148, such that the garbage sensor151 returns a larger value when the garbage container 148 is empty and asmaller value when the garbage container 148 is full. As anotherexample, the garbage sensor 151 can measure a weight of garbage in thegarbage container 148.

The garbage sensor 151 can be a proximity sensor 157 configured todetect a proximity of garbage to an upper portion of the garbagecontainer 148 or detect an amount of garbage based on some otherparameter, such as inductance or capacitance. The garbage sensor 151 canbe a load sensor positioned on a base of the drive system 154 thatmeasures a current load provided by the garbage container 148.

The drive system 154 can include a drive mechanism, such as two or morewheels or one or more continuous tracks. The drive mechanism can controlthe direction and velocity of the robotic garbage unit 112. The drivemechanism can include one or more drive motors. The drive system 154 caninclude one or more motor controls to drive the drive mechanism, one ormore braking devices to reduce speed while traveling, and a battery thatprovides power to the robotic garbage unit 112. The battery can becharged when the robotic garbage unit 112 is connected to the dockingstation, such as, for example, via connectors 142 and 160, or can becharged using another charger.

The drive system 154 can include one or more leveling mechanisms. As anexample, a leveling mechanism can include a piston that tilts thegarbage container 148. When driving on a slopped surface, as detected bya sensor, the garbage application 169 can tilt the garbage container 148with the leveling mechanism to maintain a center of gravity on thehorizontal plane in a center of the robotic garbage unit 112. Thegarbage container 148 can cause a rotational force when driving on asloped surface. The rotational force can cause the robotic garbage unit112 to tip over if the slope of the surface and weight of the garbagecontainer 148 are not properly accounted for. In one embodiment, thedrive system 154 can cause the garbage container to be substantiallyparallel to the gravitational force regardless of the slope of thesurface being traversed.

The proximity sensor 157 can include one or more sensors that senseobjects proximate to the robotic garbage unit 112. In some embodiments,multiple proximity sensors 157 are positioned on the robotic garbageunit 112 to read different planes of orientation around the roboticgarbage unit 112, such as, for example, a first sensor oriented on thehorizontal plane in a first direction, a second sensor facing 90 degreesrelative to the first direction, a third sensor facing 180 degreesrelative to the first direction and a fourth sensor facing 270 degreesrelative to the first direction. The proximity sensors 157 can also bemounted in various orientations in the vertical plane.

The proximity sensors 157 can be communicably coupled to the garbageapplication 169. The garbage application 169 can read measurements fromthe proximity sensors 157 and use the resulting measurements todetermine whether travel in a specific direction would result in acollision with another object. The proximity sensors 157 can beconfigured to sense a distance and direction of objects within aproximity to the robotic garbage unit 112. The proximity sensor 157 canbe a camera, a capacitive sensor, a capacitive displacement sensor, adoppler effect sensor, an eddy-current sensor, an inductive sensor, alaser rangefinder, a magnetic sensor, a magnetic proximity fuse sensor,a passive optical sensor, a passive thermal infrared sensor, aphotocell, a radar sensor, a sensor configured to measure reflection ofionizing radiation, a sonar sensor, an ultrasonic sensor, a fiber opticssensor, a hall effect sensor, a motion sensor, or other types ofproximity sensors. The proximity sensor 157 can include an emitter whennecessary, such as, for example, to emit radar or a laser to sense thereflection.

The positioning sensor 163 can include a global positioning system (GPS)receiver. The positioning sensor 163 can include circuitry to receiveglobal positioning data and calculate a global positioning coordinate.The positioning sensor 163 can determine a position relative to thedocking station 109. As an example, the positioning sensor 163 candetermine a direction and signal strength of a wireless signaloriginating from the docking station 109. In some embodiments, thegarbage application 169 can calculate the relative position of thedocking station based on the GPS location of the docking station 109 andthe GPS location of the robotic garbage unit 112 as determined via thepositioning sensor 163.

The positioning sensor 163 can include a capacitive transducer, acapacitive displacement sensor, an eddy-current sensor, an ultrasonicsensor, a grating sensor, a hall effect sensor, an inductive non-contactposition sensor, a laser doppler vibrometer, a linear variabledifferential transformer, a multi-axis displacement transducer, aphotodiode array, a piezo-electric transducer, a potentiometer, aproximity sensor, a rotary encoder, a seismic displacement pick-up, astring potentiometer, or other positioning sensor. The positioning canutilize external elements to determine positioning. For example, a guidecan be installed in or on a concrete driveway for the positioning sensor163 to locate. The guide can be a metal strip that can be sensed by achange in capacitance, inductance, or magnetic flux.

The connector 160 can include electrical connections configured to matewith connector 142 of the docking station 109. In some embodiments, acount of the electrical connections can be as few as two to supply powerand ground. In other embodiments, the count of the electricalconnections can be in the tens, hundreds, or thousands to facilitatefast data transfer. In one embodiment, the connectors 160/142 includetwelve or thirteen electrical connections, with two or three being usedto provide power and ground, and eight being mapped to a network cable.In yet another embodiment, eight electrical connections are used withall eight contacts being mapped to a network cable that supportspower-over-Ethernet (PoE).

When connected to the docking station, the robotic garbage unit 112 canreceive power from the docking station 109 through the electricalconnections of mated connectors 160 and 142. In some embodiments, therobotic garbage unit 112 can communicate with network 121 through awired connection facilitated by the electrical connections of matedconnectors 160 and 142. For example, the garbage application 169 canstore information about a pickup event while not docked to the dockingstation 109 and send the stored information to management application130 when docked to the docking station 109 at a later time.

The garbage application 169 can read measurements from the garbagesensors 151, proximity sensors 157, positioning sensor 163, and othersensors 168. The garbage application 169 can instruct the drive system154 to move the robotic garbage unit 112 by engaging a drive mechanism.For example, the garbage application 169 can instruct the drive system154 to move forwards, backwards, and turn at a desired velocity as wellas control other aspects of the drive system 154. The garbageapplication 169 can cause the robotic garbage unit 112 to drive from thedocking station 109 to the garbage pickup location 115 and vice versa.

The garbage application 169 can cause the drive system 154 to transportthe garbage container 148 to be proximate to the garbage pickup location115. The garbage pickup location 115 can be designated for garbagepickup on a predefined frequency. The garbage application 169 candetermine a location of the docking station 109. In some embodiments,the garbage application 169 can store the GPS location of the dockingstation 109 in internal storage on the robotic garbage unit 112, anddetermine the location of the docking station 109 by loading the GPSlocation from storage. In some embodiments, the garbage application 169can determine the location of the docking station 109 by sending awireless message to the docking station 109 and receiving a wirelessresponse including the location.

The garbage application 169 can detect that an amount of garbage hasbeen reduced, such as, for example, by reading the garbage sensor 151.The garbage application 169 can cause the drive system 154 to transportthe garbage container 148 to be proximate to the docking station 109. Insome embodiments, the robotic garbage unit 112 travels to the dockingstation 109 in response to detecting the amount of garbage has beenreduced. The garbage application 169 can generate a travel path from thegarbage pickup location 115 to the docking station 109, or vice versa.The garbage application 169 can instruct the drive system 154 to travelin the direction of the docking station 109 along the travel path whilemonitoring various sensors to ensure a collision does not occur.

The garbage application 169 can detect an obstruction along the travelpath and modify the travel path to avoid the obstruction. For example,the garbage application 169 can monitor the proximity sensor 157 and thepositioning sensor 163 while traveling, and change a course of travelbased on detection of one or more objects. If an unobstructed travelpath to either the docking station 109 or the pickup location 115 doesnot exist, the garbage application 169 can disable operation of thedrive system 154.

The garbage application 169 can cause the drive system 154 toelectrically couple with the docking station 109. The garbageapplication 169 can determine that the robotic drive system is proximateto the docking station 109. The garbage application 169 can initiate adocking sequence to electrically couple to the docking station 109. Forexample, the garbage application 169 can cause the drive system 154 tobe positioned on a docking side of the docking station 109. The garbageapplication 169 can instruct the drive system 154 to align the connector160 with the connector 142 of the docking station 109. The garbageapplication 169 can instruct the drive system 154 to move the couplingconnector in a direction of the docking port in order to couple theconnector 160 with the connector 142 of the docking station 109.

While docked to the docking station 109, the garbage application 169 candetermine that a garbage pickup event is scheduled within a thresholdperiod of time. For example, the garbage application 169 can determinethat the garbage pickup event is scheduled in 12 hours. The garbagepickup event can be scheduled for an interval of time, such as, forexample, during a 12 hour window. The garbage application 169 candetermine that the start of a garbage pickup event window is scheduledwithin a threshold period of time. The garbage application 169 canundock from the docking station 109 in response to determining thegarbage pickup event is scheduled within the threshold period of time.

The garbage application 169 can generate a travel path from the dockingstation 109 to the garbage pickup location 115 and cause the drivesystem 154 to travel along the travel path with the garbage container148. The garbage application 169 can cause the robotic garbage unit 112to be proximate to the garbage pickup location 115. The robotic garbageunit 112 can be proximate to a location when the robotic garbage unit112 is within a threshold distance from the location, such as, forexample, within six inches. For example, the garbage application 169 cancause the robotic garbage unit 112 to travel along the travel path untilthe distance to the garbage pickup location 115 is less than one inch orequal to from a current location.

In some embodiments, the garbage application 169 identifies the roboticgarbage unit 112 as being at the garbage pickup location 115 when therobotic garbage unit 112 is within the threshold distance to the garbagepickup location 115 and further forward travel would move the roboticgarbage unit 112 away from the garbage pickup location 115. In theseembodiments, the robotic garbage unit 112 can minimize the distance tothe garbage pickup location 115 without unnecessarily adjusting aposition if the distance to the garbage pickup location 115 is withinthe threshold.

The robotic garbage unit 112 can also include a garage door openingcircuit. If the docking station 109 is located within a garage, thegarbage application 169 can open the garage door using the garage dooropening circuit before traveling to the garbage pickup location 115. Thegarbage application 169 can close the garage door once the roboticgarbage unit 112 has traversed passed the garage door opening. After thegarbage pickup event, the garbage application 169 can similarly open andclose the garage door while entering the garage to dock with the dockingstation 109.

The network 121 includes, for example, the Internet, intranets,extranets, wide area networks (WANs), local area networks (LANs), wirednetworks, wireless networks, or other suitable networks, etc., or anycombination of two or more such networks. For example, such networks maycomprise satellite networks, cable networks, Ethernet networks, andother types of networks. In one embodiment, the docking station 109 isconnected to a network 121 through a wired connection, and the roboticgarbage unit 112 is connected to network 121 through a wirelessconnection. The robotic garbage unit 112 can connect to the dockingstation 109 using a wireless signal, and the docking station 109 canbridge communications from the robotic garbage unit 112 to the network121 and vice versa. For example, the docking station 109 can act as arepeater between the robotic garbage unit 112 and the network 121 byreceiving and forwarding messages between these elements.

The computing environment 103 can include a data store 127 and amanagement application 130. The computing environment 103 can include,for example, a server computer or any other system providing computingcapability. Alternatively, the computing environment 103 can employ aplurality of computing devices that may be arranged, for example, in oneor more server banks or computer banks or other arrangements. Suchcomputing devices may be located in a single installation or may bedistributed among many different geographical locations. For example,the computing environment 103 may include a plurality of computingdevices that together may comprise a hosted computing resource, a gridcomputing resource and/or any other distributed computing arrangement.In some cases, the computing environment 103 can correspond to anelastic computing resource where the allotted capacity of processing,network, storage, or other computing-related resources may vary overtime.

Various applications and/or other functionality may be executed in thecomputing environment 103 according to various embodiments. Also,various data is stored in a data store 127 that is accessible to thecomputing environment 103. The data store 127 can be representative of aplurality of data stores 127 as can be appreciated. The data stored inthe data store 127, for example, is associated with the operation of thevarious applications and/or functional entities described below.

The data stored in the data store 127 includes, for example, pickup data133, robot data 136, and potentially other data. The pickup data 133 caninclude a list of previous pickup events and robot specific data fromeach pick up event. The data from the pickup events can includescheduled pick up time, actual pick up time, starting pick up location,ending pick up location. The robot specific data of the pickup data 133can include a series of periodic sensor measurements with correspondingtimestamps for the measurements during pick up event. For example, therobot specific data can include data from the garbage sensor 151, theproximity sensor 157, positioning sensor 163, and the other sensors 168.The data from the other sensors 168 can include accelerometer data,gyroscope data, digital compass data, barometer data, and various othersensor data. As such, the other sensors 168 can include anaccelerometer, a gyroscope, a compass, a barometer, and other sensors.

The management application 130 can be executed to perform variousfunctions, including retrieving and storing information in data store127. For example, the management application 130 can receive informationfrom the garbage application 169 about pickup events including sensorinformation over time during a garbage pickup event and travelinformation about obstructions encountered while traveling along atravel path. The management application 130 can notify the clientapplication 172 if an obstruction is encountered. In one example, themanagement application 130 sends a notification to the clientapplication 172 when an unobstructed travel path is unavailable and therobotic drive unit 112 has been disabled.

The client device 118 is representative of a plurality of client devicesthat can be coupled to the network 121. The client device 118 caninclude, for example, a processor-based system, such as a computersystem, that can be embodied in the form of a desktop computer, a laptopcomputer, personal digital assistants, cellular telephones, smartphones,set-top boxes, music players, web pads, tablet computer systems, gameconsoles, electronic book readers, or other devices with likecapability. The client device 118 can include a display. The display caninclude, for example, one or more devices such as liquid crystal display(LCD) displays, gas plasma-based flat panel displays, organic lightemitting diode (OLED) displays, electrophoretic ink (E ink) displays,LCD projectors, or other types of display devices, etc.

The client device 118 can be configured to execute various applicationssuch as a client application 172 and/or other applications. The clientapplication 172 can be executed in a client device 118, for example, toaccess network content served up by the computing environment 103 and/orother servers, thereby rendering a user interface on the display. Tothis end, the client application 172 can comprise, for example, abrowser, a dedicated application, etc., and the user interface can befrom a network page, an application screen, etc. The client device 118can be configured to execute applications beyond the client application172 such as, for example, email applications, social networkingapplications, word processors, spreadsheets, and/or other applications.

The client application 172 can display the status of the robotic garbageunit 112 on a display of the client device 118. For example, the clientapplication 172 can query the management application 130 for informationabout the robotic garbage unit 112, such as, for example, pickup data133 and robot data 136.

The client application 172 can show a current location of the roboticgarbage unit 112. In some embodiments, the robotic garbage unit 112includes a cellular network connection to network 121. The clientapplication 172 can query the robotic garbage unit 112 to receive acurrent GPS location of the robotic garbage unit 112. As an example, ifthe robotic garbage unit 112 is stolen, a user can use the clientapplication 172 to determine the location of the robotic garbage unit112. In one embodiment, the client application 172 communicates with therobotic garbage unit 112 through the management application 130.

An area can be defined for normal operation of the robotic garbage unit112. In some embodiments, the area is defined by a user through themanagement application or the client application 172. In anotherembodiment, an area is automatically defined by the managementapplication based on the location of the docking station 109 and thegarbage pickup location 115. In this embodiment, the managementapplication 130 can determine an optimal path between the dockingstation 109 and the garbage pickup location 115 and define that therobotic garbage unit 112 is within the area of normal operation whenwithin a threshold distance from the optimal path. As an example, therobotic garbage unit 112 is outside of the area of normal operation iffurther than forty feet from any point on the optimal path.

If the robotic garbage unit 112 is outside of the area of normaloperation, the management application 130 or the garbage application 169can send a notification to the client application 172 indicating thatthe robotic garbage unit 112 has left the area. The notification caninclude a current location of the robotic garbage unit 112, one or morephotographs or videos of the surroundings that lead to the movementoutside of the area of normal operation, and a direction of travel. Thegarbage application 169 can disable operation of the robotic garbageunit 112 unless an enable command is received from a client application172.

The client application 172 can display a history of garbage pickupsincluding the times of each of the garbage pickups. The clientapplication 172 can notify a user if a garbage pickup has not occurredduring a scheduled pickup window. In some embodiments, the roboticgarbage unit 112 can send a notification to a third-party garbagecollection service via the internet indicating a missed pickup event. Inthis embodiment, the robotic garbage unit 112 can receive an updatedscheduling window from the third-party garbage collection service.

The client application 172 can render a user interface including a livevideo stream of one or more onboard cameras received from the roboticgarbage unit 112, such as from the proximity sensors 157. The userinterface can include user interface elements to receive driveinstructions. For example, the user interface can include a joystick toindicate a desired direction and velocity of travel. The clientapplication 172 can send commands to the garbage application 169 tocause the drive system 154 to drive according to the joystick position.Accordingly, a user of the client device 118 can steer the roboticgarbage unit 112 while watching a live feed from the robotic garbageunit 112.

The user interface can also include other elements illustrating thecurrent measurements of the other sensors 151, 157, 163, and 168. Forexample, the user interface can show an overhead illustration of therobotic garbage unit 112 with color filled in where obstructions aredetected, but color omitted where no obstructions are detected. Theseother elements can facilitate greater control and awareness during thedriving experience for the user.

Turning to FIGS. 2A and 2B, shown are various examples of the garbageremoval environment 100, shown as garbage removal environments 200 a and200 b according to various embodiments of the present disclosure. Thegarbage removal environments 200 a and 200 b include a buildingstructure 106, a docking station 109, a robotic garbage unit 112 a, anda pickup location 115. In some embodiments, the building structure canhave a garage door 203 and the docking station 109 can be positionedinside of the garage.

The garbage removal environment 200 a illustrates the robotic garbageunit 112 a docked to the docking station 109. While docked, theconnector 160 of the robotic garbage unit 112 a is engaged with theconnector 142 of the docking station 109. The robotic garbage unit 112 acan charge a battery and exchange data with the docking station 109 viathe connection to the docking station 109.

As shown in the garbage removal environment 200 b, the robotic garbageunit 112 a can disengage from the docking station 109 and travel to thepickup location 115 by traversing a travel path 206. The garbageapplication 169 can calculate the travel path 206 and cause the roboticgarbage unit 112 a to disengage and travel along the travel path 206 toa location proximate to the pickup location 115. For example, when apickup event is scheduled to occur, the garbage application 169 caninitiate the process of traveling to the pickup location 115.

With reference to FIGS. 3A-C, shown are examples of a robotic garbageunit 112 according to various embodiments of the present disclosure. Insome embodiments, garbage container 148 can be manufactured tofacilitate attachment by the attaching mechanism 166 and can includesensors, such as a garbage sensor 151 and other sensors. In otherembodiments, the garbage container 148 can be any garbage container 148used for garbage collection. In other embodiments, the attachingmechanism is omitted and the garbage container 148 is permanentlyaffixed to the drive system 154.

FIG. 3A illustrates an example attaching mechanism 166 a for holding thegarbage container 148 onto the drive system 154 of the robotic garbageunit 112 b. The attaching mechanism 166 a can include a front supportportion 303 and a wheel clamp 306. A wheel 309 of the garbage container148 can be clamped by the wheel clamp 306. The wheel clamp 306 caninclude a circular contact portion 312 that comes in contact with thewheel 309. In some embodiments, the wheel clamp 306 can include a springmechanism to force the circular contact portion 312 into contact withthe wheel 309. In some embodiments, the wheel clamp 306 is positionedand fixed in place by a restrictive clamp. The wheel clamp 306 can befixed in place while a spring mechanism pushes the circular contactportion 312 into the wheel 309 to maintain a pressing force.

The circular contact portion 312 can be made of foam, rubber, metal, orother material. The material of the circular contact portion 312 canprovide static friction against the wheel 309 to prevent movement of thewheel 309. In one embodiment, the wheel 309 has a rim and the circularcontact portion 312 can include a cylindrical protrusion that entersinto the rim of the wheel 309 to secure the wheel 309. The front supportportion 303 can contact a front of the garbage container 148 to preventthe garbage container 148 from shifting forward. The height of the frontsupport portion 303 can prevent the garbage container 148 from rotatingbackwards around the wheel 309.

FIG. 3B illustrates another example attaching mechanism 166 b forholding the garbage container 148 onto the drive system 154 of therobotic garbage unit 112 c. The attaching mechanism 166 b can include abase 321 with a first clamping arm 324, a second clamping arm 327, and athird clamping arm 328. The base 321 can include a rim 330 that extendsupward. The first clamping arm 324 can contact a first side 333 of thegarbage container 148. In some embodiments, the first side 333 includesa recessed space in the shape of the first clamping arm 324. Therecessed space can facilitate attachment by the attaching mechanism 166b. The second clamping arm 327 can contact the second side 336 of thegarbage container 148. The third clamping arm 328 can contact a thirdside of the garbage container 148. Although not shown, the attachingmechanism 166 b can also include a fourth clamping arm that contact afourth side of the garbage container 148.

FIG. 3C illustrates another example attaching mechanism 166 c forholding the garbage container 148 onto the drive system 154 of therobotic garbage unit 112 d. The attaching mechanism 166 c includes arectangular bin 342 that the garbage container 148 fits into. Therectangular bin 342 can provide lateral and vertical support to thegarbage container 148. The garbage container 148 can be lifted andplaced into the rectangular bin 342.

Turning to FIG. 4, shown is a robotic garbage unit 112 e according tovarious embodiments of the present disclosure. The robotic garbage unit112 e illustrates one example of the placement of several sensors. Therobotic garbage unit 112 e can include a garbage sensor 151 a affixed tothe garbage container 148 and/or a garbage sensor 151 b as part of thedrive system 154. The robotic garbage unit 112 e can include a firstproximity sensor 157 a facing toward a first side and a second proximitysensor 157 b facing toward a second side. The robotic garbage unit 112 ecan also include one or more electronic components 403, such as, forexample, a positioning sensor 163, other sensors 168, a computingdevice, and other circuits.

With reference to FIG. 5, shown is a base 500 of a robotic garbage unit112 according to various embodiments of the present disclosure. Theconnector 160 a on the base 500 can connect to the connector 142 a onthe docking station 109. Several pins on the connector 160 a can matewith the pins on connector 142 a to establish a communication busbetween the base 500 and the docking station 109. The communication buscan include clock and data signals in addition to a power and groundsingle, among other electrical connections.

The base 500 can include a circuit board 503, which is shown separatefrom the electronic components 403. The circuit board 503 can include acomputing device with a hardware processor and memory. The base 500 canalso include a wireless antenna connected to the circuit board 503, suchas along the ridge 506 of the base 500. The garbage application 169executed in the computing device can cause the drive system 154 to alignthe base 500 with the docking station 109 and travel along the travelpath 509 to connect the connectors 160 a and 142 a together. A cable 512can provide power to the docking station 109. In some embodiments, thecable 512 is an AC power cable plugged into a wall outlet. The cable 512can also include an Ethernet connection to a local area network. In oneembodiment, the cable 512 is a network cable with PoE to provide power.

Referring next to FIG. 6, shown is a flowchart that provides one exampleof the operation of a portion of the garbage application 169 accordingto various embodiments. It is understood that the flowchart of FIG. 6provides merely an example of the many different types of functionalarrangements that may be employed to implement the operation of theportion of the garbage application 169 as described herein. As analternative, the flowchart of FIG. 6 may be viewed as depicting anexample of elements of a method implemented in robotic garbage unit 112according to one or more embodiments.

Beginning with box 603, the garbage application 169 can identify ascheduled garbage pickup event. The garbage application 169 candetermine that a current time is within a threshold period of time fromthe scheduled garbage pickup.

At box 606, the garbage application 169 can determine a travel path. Thetravel path can begin at the current location of the robotic garbageunit 112, such as the docking station 109, and end at the garbage pickuplocation 115. The travel path can be based in part on a history oftravel paths taken. For example, the garbage application 169 can routethe travel path to avoid a sunken spot in a concrete driveway based onsensor measurements during previous travel paths taken. As anotherexample, the garbage application 169 can avoid passing near a previouslydetected obstruction in a previously used travel path.

At box 609, the garbage application 169 can transport the garbagecontainer 148 along the travel path to the garbage pickup location. Thegarbage application 169 can cause the drive system 154 to disengage fromthe docking station and proceed to travel along the travel path.

At box 612, the garbage application 169 can monitor the sensors todetermine if an obstruction is encountered while traveling on the travelpath. The garbage application 169 can detect a change in elevationbeyond a threshold level allowed. For example, the garbage application169 can detect the ledge of a curb and determine the drop driving offthe edge of the curb exceeds an allowed change in elevation. As such,the garbage application 169 can identify the curb as an obstruction. Asanother example, the garbage application 169 can detect a car parked inthe driveway based on the proximity sensors 157. The garbage application169 can identify the car as an obstruction. If an obstruction isencountered, the garbage application 169 can proceed to box 615.Otherwise, the garbage application 169 proceeds to box 618.

At box 615, the garbage application 169 can adjust the travel path toavoid the obstruction. The garbage application 169 can change directionto attempt to drive around the obstruction, while monitoring sensors todetermine the shape and size of the obstruction. As an example, thegarbage application 169 can follow an outer edge of the obstructionbased on measurements from the proximity sensor 157. The robotic garbageunit 112 can stop when it arrives at the garbage pickup location 115 andwait for a garbage pickup event. If no travel path is unobstructed, thegarbage application 169 can disable the robotic garbage unit 112 andsend a notification to the management application 130, which can informthe user via the client device 118.

At box 618, the garbage application 169 can detect a garbage pickupevent. For example, the garbage application 169 can receive ameasurement from the garbage sensor 151 that identifies a change in theamount of garbage in the garbage container 148. The garbage application169 can detect the garbage pickup based on other sensors 168, such as,for example, by measurements from an accelerometer and/or gyrosphereindicating the garbage container 148 has been turned upside down toremove garbage.

At box 621, the garbage application 169 can cause the robotic garbageunit 112 to transport the garbage container 148 back to the dockingstation 109. In the same or similar manner as described in boxes 606 and609, the garbage application 169 can determine a travel path back to thedocking station 109.

At box 624, the garbage application 169 can monitor the sensors todetermine if an obstruction is encountered while traveling on the travelpath from box 621. The garbage application 169 can detect a change inelevation beyond a threshold level allowed. For example, the garbageapplication 169 can detect the ledge of a curb and determine the dropdriving off the edge of the curb exceeds an allowed change in elevation.As such, the garbage application 169 can identify the curb as anobstruction. As another example, the garbage application 169 can detecta car parked in the driveway based on the proximity sensors 157. Thegarbage application 169 can identify the car as an obstruction. If anobstruction is encountered, the garbage application 169 can proceed tobox 627. If an unobstructed path is unavailable, the garbage application169 can disable the robotic garbage unit 112 and transmit a notificationto a user. Otherwise, the garbage application 169 proceeds to box 630.

At box 627, the garbage application 169 can adjust the travel path inthe same or similar way as in box 615.

At box 630, the garbage application 169 can initiate a docking sequencewith the docking station 109. The garbage application 169 can cause thedrive system 154 to align with the docking station 109 and engageconnector 160 with connector 142.

With reference to FIG. 7, shown is a schematic block diagram of acomputing device 700 according to an embodiment of the presentdisclosure. The computing environment 103, docking station 109, roboticgarbage unit 112, and client devices 118 can include one or morecomputing devices 700. Each computing device 700 includes at least oneprocessor circuit, for example, having a processor 710 and a memory720/740, both of which are coupled to a local interface 702. To thisend, each computing device 700 may comprise, for example, at least oneserver computer or like device. The local interface 702 may comprise,for example, a data bus with an accompanying address/control bus orother bus structure as can be appreciated.

Stored in the memory 720/740 are both data and several components thatare executable by the processor 710. In particular, stored in the memory720/740 and executable by the processor 710 are the managementapplication 130, the garbage application 169, and the client application172, and potentially other applications. Also stored in the memory720/740 may be a data store 127 and other data. In addition, anoperating system may be stored in the memory 720/740 and executable bythe processor 710.

It is understood that there may be other applications that are stored inthe memory 720/740 and are executable by the processor 710 as can beappreciated. Where any component discussed herein is implemented in theform of software, any one of a number of programming languages may beemployed such as, for example, C, C++, C#, Objective C, Java®,JavaScript®, Perl, PHP, Visual Basic®, Python®, Ruby, Flash®, or otherprogramming languages.

A number of software components are stored in the memory 720/740 and areexecutable by the processor 710. In this respect, the term “executable”means a program file that is in a form that can ultimately be run by theprocessor 710. Examples of executable programs may be, for example, acompiled program that can be translated into machine code in a formatthat can be loaded into a random access portion of the memory 720/740and run by the processor 710, source code that may be expressed inproper format such as object code that is capable of being loaded into arandom access portion of the memory 720/740 and executed by theprocessor 710, or source code that may be interpreted by anotherexecutable program to generate instructions in a random access portionof the memory 720/740 to be executed by the processor 710, etc. Anexecutable program may be stored in any portion or component of thememory 720/740 including, for example, random access memory (RAM),read-only memory (ROM), hard drive, solid-state drive, USB flash drive,memory card, optical disc such as compact disc (CD) or digital versatiledisc (DVD), floppy disk, magnetic tape, or other memory components.

The memory 720/740 is defined herein as including both volatile andnonvolatile memory and data storage components. In some embodiments, thememory 720 is a volatile storage while memory 740 is a nonvolatilestorage. Volatile components are those that do not retain data valuesupon loss of power. Nonvolatile components are those that retain dataupon a loss of power. Thus, the memory 720/740 may comprise, forexample, random access memory (RAM), read-only memory (ROM), hard diskdrives, solid-state drives, USB flash drives, memory cards accessed viaa memory card reader, floppy disks accessed via an associated floppydisk drive, optical discs accessed via an optical disc drive, magnetictapes accessed via an appropriate tape drive, and/or other memorycomponents, or a combination of any two or more of these memorycomponents. In addition, the RAM may comprise, for example, staticrandom access memory (SRAM), dynamic random access memory (DRAM), ormagnetic random access memory (MRAM) and other such devices. The ROM maycomprise, for example, a programmable read-only memory (PROM), anerasable programmable read-only memory (EPROM), an electrically erasableprogrammable read-only memory (EEPROM), or other like memory device.

Also, the processor 710 may represent multiple processors 710 and/ormultiple processor cores and the memory 720/740 may represent multiplememories 720/740 that operate in parallel processing circuits,respectively. In such a case, the local interface 702 may be anappropriate network that facilitates communication between any two ofthe multiple processors 710, between any processor 710 and any of thememories 720/740, or between any two of the memories 720/740, etc. Thelocal interface 702 may comprise additional systems designed tocoordinate this communication, including, for example, performing loadbalancing. The processor 710 may be of electrical or of some otheravailable construction.

Although the management application 130, the garbage application 169,and the client application 172, and other various systems describedherein may be embodied in software or code executed by general purposehardware as discussed above, as an alternative the same may also beembodied in dedicated hardware or a combination of software/generalpurpose hardware and dedicated hardware. If embodied in dedicatedhardware, each can be implemented as a circuit or state machine thatemploys any one of or a combination of a number of technologies. Thesetechnologies may include, but are not limited to, discrete logiccircuits having logic gates for implementing various logic functionsupon an application of one or more data signals, application specificintegrated circuits (ASICs) having appropriate logic gates,field-programmable gate arrays (FPGAs), or other components, etc. Suchtechnologies are generally well known by those skilled in the art and,consequently, are not described in detail herein.

The flowchart of FIG. 6 shows the functionality and operation of animplementation of portions of the application. If embodied in software,each block may represent a module, segment, or portion of code thatcomprises program instructions to implement the specified logicalfunction(s). The program instructions may be embodied in the form ofsource code that comprises human-readable statements written in aprogramming language or machine code that comprises numericalinstructions recognizable by a suitable execution system such as aprocessor 710 in a computer system or other system. The machine code maybe converted from the source code, etc. If embodied in hardware, eachblock may represent a circuit or a number of interconnected circuits toimplement the specified logical function(s).

Although the flowchart of FIG. 6 shows a specific order of execution, itis understood that the order of execution may differ from that which isdepicted. For example, the order of execution of two or more blocks maybe scrambled relative to the order shown. Also, two or more blocks shownin succession in FIG. 6 may be executed concurrently or with partialconcurrence. Further, in some embodiments, one or more of the blocksshown in FIG. 6 may be skipped or omitted. In addition, any number ofcounters, state variables, warning semaphores, or messages might beadded to the logical flow described herein, for purposes of enhancedutility, accounting, performance measurement, or providingtroubleshooting aids, etc. It is understood that all such variations arewithin the scope of the present disclosure.

Also, any logic or application described herein, including themanagement application 130, the garbage application 169, and the clientapplication 172, that comprises software or code can be embodied in anynon-transitory computer-readable medium for use by or in connection withan instruction execution system such as, for example, a processor 710 ina computer system or other system. In this sense, the logic maycomprise, for example, statements including instructions anddeclarations that can be fetched from the computer-readable medium andexecuted by the instruction execution system. In the context of thepresent disclosure, a “computer-readable medium” can be any medium thatcan contain, store, or maintain the logic or application describedherein for use by or in connection with the instruction executionsystem.

The computer-readable medium can comprise any one of many physical mediasuch as, for example, magnetic, optical, or semiconductor media. Morespecific examples of a suitable computer-readable medium would include,but are not limited to, magnetic tapes, magnetic floppy diskettes,magnetic hard drives, memory cards, solid-state drives, USB flashdrives, or optical discs. Also, the computer-readable medium may be arandom access memory (RAM) including, for example, static random accessmemory (SRAM) and dynamic random access memory (DRAM), or magneticrandom access memory (MRAM). In addition, the computer-readable mediummay be a read-only memory (ROM), a programmable read-only memory (PROM),an erasable programmable read-only memory (EPROM), an electricallyerasable programmable read-only memory (EEPROM), or other type of memorydevice.

Further, any logic or application described herein, including themanagement application 130, the garbage application 169, and the clientapplication 172, may be implemented and structured in a variety of ways.For example, one or more applications described may be implemented asmodules or components of a single application. Further, one or moreapplications described herein may be executed in shared or separatecomputing devices or a combination thereof. For example, a plurality ofthe applications described herein may execute in the same computingdevice 700, or in multiple computing devices in the same computingenvironment 103, docking station 109, robotic garbage unit 112, and/orclient devices 118. Additionally, it is understood that terms such as“application,” “service,” “system,” “engine,” “module,” and so on may beinterchangeable and are not intended to be limiting.

Disjunctive language such as the phrase “at least one of X, Y, or Z,”unless specifically stated otherwise, is otherwise understood with thecontext as used in general to present that an item, term, etc., may beeither X, Y, or Z, or any combination thereof (e.g., X, Y, and/or Z).Thus, such disjunctive language is not generally intended to, and shouldnot, imply that certain embodiments require at least one of X, at leastone of Y, or at least one of Z to each be present.

It should be emphasized that the above-described embodiments of thepresent disclosure are merely possible examples of implementations setforth for a clear understanding of the principles of the disclosure.Many variations and modifications may be made to the above-describedembodiment(s) without departing substantially from the spirit andprinciples of the disclosure. All such modifications and variations areintended to be included herein within the scope of this disclosure andprotected by the following claims.

Therefore, the following is claimed:
 1. An apparatus comprising: agarbage container comprising a bottom and four sides; a robotic drivesystem configured to transport the garbage container; at least oneproximity detection sensor configured to sense a distance and adirection of objects within a proximity of the robotic drive system; andat least one garbage sensor configured to determine a quantitativemeasurement of an amount of garbage in the garbage container.
 2. Theapparatus of claim 1, further comprising at least one positioning sensorconfigured to determine a position of the robotic drive system.
 3. Theapparatus of claim 2, wherein the position of the robotic drive systemis at least one of: a relative position of the robotic drive system inrelation to a docking station or a global positioning location.
 4. Theapparatus of claim 1, wherein the at least one garbage sensor is furtherconfigured to determine a weight of the garbage in the garbagecontainer.
 5. The apparatus of claim 1, further comprising at least onecomputing device configured to at least: determine a travel path for therobotic drive system to travel to a location designated for garbagepickup; cause a first signal to be transmitted to open a garage door;cause the robotic drive system to transport the garbage container to beproximate to the first location; and cause a second signal to betransmitted to close the garage door.
 6. The apparatus of claim 5,further comprising at least one computing device configured to at least:detect, via the at least one garbage sensor, that the amount of garbagein the garbage container has been reduced; determine a second locationof a docking station; determine a second travel path for the roboticdrive system to travel to the second location; cause the robotic drivesystem to transport the garbage container to be proximate to the secondlocation; and cause the robotic drive system to electrically couple withthe docking station.
 7. A system, comprising: a robotic drive system;and at least one computing device communicably connected to the roboticdrive system, the at least one computing device being configured to atleast: cause the robotic drive system to transport a garbage containerto be proximate to a first location, the first location being designatedfor garbage pickup on a predefined frequency; determine a secondlocation of a docking station; cause the robotic drive system totransport the garbage container to be proximate to the second location;and cause the robotic drive system to electrically couple with thedocking station.
 8. The system of claim 7, wherein the robotic drivesystem further comprises a clamping mechanism to attach to the garbagecontainer.
 9. The system of claim 7, wherein the at least one computingdevice is further configured to at least determine a travel path for therobotic drive system to travel to the first location, wherein therobotic drive system travels the travel path to be proximate to thefirst location.
 10. The system of claim 9, wherein the at least onecomputing device is further configured to: detect, via a proximitysensor, an obstruction along the travel path; and modify the travel pathto avoid the obstruction.
 11. The system of claim 9, wherein the atleast one computing device is further configured to: determine that anunobstructed travel path to the first location is unavailable; anddisable operation of the robotic drive system.
 12. The system of claim7, wherein the at least one computing device is further configured to atleast determine a travel path for the robotic drive system to travel tothe second location.
 13. The system of claim 7, wherein the at least onecomputing device is further configured to at least detect, via the atleast one garbage sensor, that an amount of garbage in the garbagecontainer has been reduced, wherein the second location is determined inresponse to the amount of garbage being reduced.
 14. A method,comprising: detecting a garbage pickup event; identifying a firstlocation of a robotic drive system; identifying a second location of arobotic docking station; generating a travel path to travel from thefirst location to the second location; and in response to detecting thegarbage pickup event, transporting, via the robotic drive system, agarbage container along the travel path.
 15. The method of claim 14,further comprising; determining that the robotic drive system isproximate to the robotic docking station; and initiating a dockingsequence to electrically couple the robotic drive system with therobotic docking station.
 16. The method of claim 15, wherein the dockingsequence comprises: positioning the robotic drive system on a dockingside of the docking station; aligning a coupling connector of therobotic drive system with a docking port of the docking station;transporting the robotic drive system to move the coupling connector ina direction of the docking port; and connecting the coupling connectorwith the docking port.
 17. The method of claim 14, further comprising;detecting, via a proximity sensor, an obstruction along the travel path;and adjusting, via the robotic drive system, the travel path to avoidthe obstruction.
 18. The method of claim 17, wherein the travel path isadjusted based at least in part on a plurality of measurements from theproximity sensor while traveling to avoid the obstruction.
 19. Themethod of claim 14, further comprising: determining that a secondgarbage pickup event is scheduled within a threshold period of time;undocking the robotic drive system from the robotic docking station;generating a second travel path from the second location to the firstlocation; and transporting the robotic drive system and the garbagecontainer to the first location along the second travel path.
 20. Themethod of claim 14, wherein detecting the garbage pickup event comprisedetecting, via a garbage sensor, that an amount of garbage in thegarbage container has been reduced.